﻿//PlazaColumnRegistry.cs
//Copyright (c) 2013 StockSharp LLC, all rights reserved.
//This code module is part of StockSharp library.
//This code is licensed under the GNU GENERAL PUBLIC LICENSE Version 3.
//See the file License.txt for the license details.
//More info on: http://stocksharp.com

namespace StockSharp.Plaza.Metadata
{
	/// <summary>
	/// Реестр всех колонок, описывающие метаданные Plaza.
	/// </summary>
	public class PlazaColumnRegistry
	{
		internal PlazaColumnRegistry()
		{
		}

		#region Стаканы

		/// <summary>
		/// Колонки стакана для фьючерса глубиной 5.
		/// </summary>
		public readonly PlazaAggregationColumns Aggregation5Future = new PlazaAggregationColumns();

		/// <summary>
		/// Колонки стакана для фьючерса глубиной 20.
		/// </summary>
		public readonly PlazaAggregationColumns Aggregation20Future = new PlazaAggregationColumns();

		/// <summary>
		/// Колонки стакана для фьючерса глубиной 50.
		/// </summary>
		public readonly PlazaAggregationColumns Aggregation50Future = new PlazaAggregationColumns();

		/// <summary>
		/// Колонки стакана для опцион глубиной 5.
		/// </summary>
		public readonly PlazaAggregationColumns Aggregation5Option = new PlazaAggregationColumns();

		/// <summary>
		/// Колонки стакана для опцион глубиной 20.
		/// </summary>
		public readonly PlazaAggregationColumns Aggregation20Option = new PlazaAggregationColumns();

		/// <summary>
		/// Колонки стакана для опцион глубиной 50.
		/// </summary>
		public readonly PlazaAggregationColumns Aggregation50Option = new PlazaAggregationColumns();

		#endregion

		#region Bond

		/// <summary>
		/// Колонки справочника инструментов облигаций.
		/// </summary>
		public readonly PlazaBondIsinFutureColumns BondIsinFuture = new PlazaBondIsinFutureColumns();

		/// <summary>
		/// Колонки таблицы НКД на даты выплат купонов.
		/// </summary>
		public readonly PlazaBondNkdFutureColumns BondNkdFuture = new PlazaBondNkdFutureColumns();

		/// <summary>
		/// Колонки таблицы размеров выплат номинальной стоимости облигации.
		/// </summary>
		public readonly PlazaBondNominalFutureColumns BondNominalFuture = new PlazaBondNominalFutureColumns();

		/// <summary>
		/// Колонки справочника параметров облигаций.
		/// </summary>
		public readonly PlazaBondRegistryFutureColumns BondRegistryFuture = new PlazaBondRegistryFutureColumns();

		/// <summary>
		/// Колонки справочника инструментов.
		/// </summary>
		public readonly PlazaFutureColumns Future = new PlazaFutureColumns();

		#endregion

		#region Common

		/// <summary>
		/// Колонки справочника базовых контрактов для инструментов.
		/// </summary>
		public readonly PlazaCommonOptionColumns CommonOption = new PlazaCommonOptionColumns();

		/// <summary>
		/// Колонки справочника базовых контрактов для инструментов.
		/// </summary>
		public readonly PlazaCommonFutureColumns CommonFuture = new PlazaCommonFutureColumns();

		#endregion

		#region Deal

		/// <summary>
		/// Колонки журнала сделок.
		/// </summary>
		public readonly PlazaTradeOptionColumns TradeOption = new PlazaTradeOptionColumns();

		/// <summary>
		/// Колонки журнала сделок.
		/// </summary>
		public readonly PlazaTradeFutureColumns TradeFuture = new PlazaTradeFutureColumns();

		#endregion

		/// <summary>
		/// Колонки отчетов о поставке.
		/// </summary>
		public readonly PlazaDeliveryReportFutureColumns DeliveryReportFuture = new PlazaDeliveryReportFutureColumns();

		/// <summary>
		/// Колонки заявок на экспирацию.
		/// </summary>
		public readonly PlazaExpirationOrdersOptionColumns ExpirationOrdersOption = new PlazaExpirationOrdersOptionColumns();

		#region HeartBeat

		/// <summary>
		/// Колонки служебной таблицы cерверных часов.
		/// </summary>
		public readonly PlazaHeartBeatColumns HeartBeatFuture = new PlazaHeartBeatColumns();

		/// <summary>
		/// Колонки служебной таблицы cерверных часов.
		/// </summary>
		public readonly PlazaHeartBeatColumns HeartBeatOption = new PlazaHeartBeatColumns();

		#endregion

		/// <summary>
		/// Колонки таблицы индексов.
		/// </summary>
		public readonly PlazaIndexColumns Index = new PlazaIndexColumns();

		/// <summary>
		/// Колонки таблицы с историей значений индексов.
		/// </summary>
		public readonly PlazaIndexLogColumns IndexLog = new PlazaIndexLogColumns();

		#region InterClearingInfo

		/// <summary>
		/// Колонки таблицы с информацией о ВМ, рассчитанной по результатам пром. клиринга.
		/// </summary>
		public readonly PlazaInterClearingInfoFutureColumns InterClearingInfoFuture = new PlazaInterClearingInfoFutureColumns();

		/// <summary>
		/// Колонки таблицы с информацией о ВМ, рассчитанной по результатам пром. клиринга.
		/// </summary>
		public readonly PlazaInterClearingInfoOptionColumns InterClearingInfoOption = new PlazaInterClearingInfoOptionColumns();

		#endregion

		/// <summary>
		/// Колонки журнала заявок по связкам.
		/// </summary>
		public readonly PlazaMultiLegOrdersLogFutureColumns MultiLegOrdersLogFuture = new PlazaMultiLegOrdersLogFutureColumns();

		/// <summary>
		/// Колонки журнала сделок по связкам.
		/// </summary>
		public readonly PlazaMultiLegDealFutureColumns MultiLegDealFuture = new PlazaMultiLegDealFutureColumns();

		/// <summary>
		/// Колонки журнала справочника связок.
		/// </summary>
		public readonly PlazaMultiLegFutureColumns MultiLegFuture = new PlazaMultiLegFutureColumns();

		#region OrderBookInfo

		/// <summary>
		/// Колонки таблицы с информацией о стаканах.
		/// </summary>
		public readonly PlazaOrderBookInfoFutureColumns OrderBookInfoFuture = new PlazaOrderBookInfoFutureColumns();

		/// <summary>
		/// Колонки таблицы с информацией о стаканах.
		/// </summary>
		public readonly PlazaOrderBookInfoOptionColumns OrderBookInfoOption = new PlazaOrderBookInfoOptionColumns();

		#endregion

		#region OrderBookOrders

		/// <summary>
		/// Колонки таблицы логов заявок.
		/// </summary>
		public readonly PlazaOrderBookOrdersFutureColumns OrderBookOrdersFuture = new PlazaOrderBookOrdersFutureColumns();

		/// <summary>
		/// Колонки таблицы логов заявок.
		/// </summary>
		public readonly PlazaOrderBookOrdersOptionColumns OrderBookOrdersOption = new PlazaOrderBookOrdersOptionColumns();

		#endregion

		#region OrdersLog

		/// <summary>
		/// Колонки журнала заявок.
		/// </summary>
		public readonly PlazaOrdersLogFutureColumns OrdersLogFuture = new PlazaOrdersLogFutureColumns();

		/// <summary>
		/// Колонки журнала заявок.
		/// </summary>
		public readonly PlazaOrdersLogOptionColumns OrdersLogOption = new PlazaOrdersLogOptionColumns();

		#endregion

		#region AnonymousOrdersLog

		/// <summary>
		/// Колонки журнала заявок анонимного order_log.
		/// </summary>
		public readonly PlazaAnonymousOrdersLogColumns AnonymousOrdersLog = new PlazaAnonymousOrdersLogColumns();

		/// <summary>
		/// Колонки журнала заявок по связкам анонимного order_log.
		/// </summary>
		public readonly PlazaAnonymousMultiLegOrdersLogColumns AnonymousMultiLegOrdersLog = new PlazaAnonymousMultiLegOrdersLogColumns();

		#endregion

		/// <summary>
		/// Колонки таблицы позиций клиентов.
		/// </summary>
		public readonly PlazaPositionColumns Positions = new PlazaPositionColumns();

		/// <summary>
		/// Колонки таблицы средств и лимитов клиентов.
		/// </summary>
		public readonly PlazaPortfolioColumns Portfolios = new PlazaPortfolioColumns();

		#region RejectedOrders

		/// <summary>
		/// Колонки таблицы отвергнутых в клиринг заявок.
		/// </summary>
		public readonly PlazaRejectedOrdersFutureColumns RejectedOrdersFuture = new PlazaRejectedOrdersFutureColumns();

		/// <summary>
		/// Колонки таблицы отвергнутых в клиринг заявок.
		/// </summary>
		public readonly PlazaRejectedOrdersOptionColumns RejectedOrdersOption = new PlazaRejectedOrdersOptionColumns();

		#endregion

		#region SessionContents

		/// <summary>
		/// Колонки справочника торгуемых инструментов.
		/// </summary>
		public readonly PlazaSessionContentsFutureColumns SessionContentsFuture = new PlazaSessionContentsFutureColumns();

		/// <summary>
		/// Колонки справочника торгуемых инструментов.
		/// </summary>
		public readonly PlazaSessionContentsOptionColumns SessionContentsOption = new PlazaSessionContentsOptionColumns();

		#endregion

		/// <summary>
		/// Колонки таблицы с информацией о торговой сессии.
		/// </summary>
		public readonly PlazaSessionColumns Session = new PlazaSessionColumns();

		/// <summary>
		/// Колонки таблицы с cообщениями торговой системы.
		/// </summary>
		public readonly PlazaSysMessagesColumns SysMessages = new PlazaSysMessagesColumns();

		/// <summary>
		/// Колонки таблицы с результатами клиринга: волатильность и теоретические цены.
		/// </summary>
		public readonly PlazaSessionSettlementOptionColumns SessionSettlementOption = new PlazaSessionSettlementOptionColumns();

		/// <summary>
		/// Колонки таблицы с результатами клиринга: расчетные цены.
		/// </summary>
		public readonly PlazaSessionSettlementFutureColumns SessionSettlementFuture = new PlazaSessionSettlementFutureColumns();

		/// <summary>
		/// Колонки таблицы с трансляцией курса USD.
		/// </summary>
		public readonly PlazaUsdOnlineColumns UsdOnline = new PlazaUsdOnlineColumns();

		/// <summary>
		/// Колонки таблицы с именами фирм.
		/// </summary>
		public readonly PlazaDilerColumns Diler = new PlazaDilerColumns();

		/// <summary>
		/// Колонки таблицы с клиентами.
		/// </summary>
		public readonly PlazaInvestorColumns Investor = new PlazaInvestorColumns();

		#region Vcb

		/// <summary>
		/// Колонки справочника базовых контрактов для фьючерсов.
		/// </summary>
		public readonly PlazaVcbFutureColumns VcbFuture = new PlazaVcbFutureColumns();

		/// <summary>
		/// Колонки справочника базовых контрактов для опционов.
		/// </summary>
		public readonly PlazaVcbOptionColumns VcbOption = new PlazaVcbOptionColumns();

		#endregion

		#region Вариационная маржа

		/// <summary>
		/// Колонки таблицы с вариационной маржой по фьючерсам.
		/// </summary>
		public readonly PlazaVarMarginFutureColumns VarMarginFuture = new PlazaVarMarginFutureColumns();

		/// <summary>
		/// Колонки таблицы с вариационной маржой по опционам.
		/// </summary>
		public readonly PlazaVarMarginOptionColumns VarMarginOption = new PlazaVarMarginOptionColumns();

		#endregion // Вариационная маржа

		/// <summary>
		/// Колонки таблицы с коэффициентами волатильности.
		/// </summary>
		public readonly PlazaVolatilitySmileColumns VolatilitySmile = new PlazaVolatilitySmileColumns();

		/// <summary>
		/// Колонки таблицы с волатильностью.
		/// </summary>
		public readonly PlazaVolatilityColumns Volatility = new PlazaVolatilityColumns();

		/// <summary>
		/// Колонки таблицы с клиентскими деньгами в клиринг.
		/// </summary>
		public readonly PlazaClearingMoneyColumns ClearingMoney = new PlazaClearingMoneyColumns();

		#region Дополнительная справочная информация

		/// <summary>
		/// Колонки таблицы с параметрами базовых контрактов.
		/// </summary>
		public readonly PlazaBaseContractsParamsColumns BaseContractsParams = new PlazaBaseContractsParamsColumns();

		/// <summary>
		/// Колонки таблицы с параметрами фьючерсов.
		/// </summary>
		public readonly PlazaFuturesParamsColumns FuturesParams = new PlazaFuturesParamsColumns();

		/// <summary>
		/// Колонки таблицы с параметрами виртуальных фьючерсов.
		/// </summary>
		public readonly PlazaVirtualFuturesParamsColumns VirtualFuturesParams = new PlazaVirtualFuturesParamsColumns();

		/// <summary>
		/// Колонки таблицы с параметрами опционов.
		/// </summary>
		public readonly PlazaOptionsParamsColumns OptionsParams = new PlazaOptionsParamsColumns();

		/// <summary>
		/// Колонки таблицы с информацией о параметрах фирм.
		/// </summary>
		public readonly PlazaBrokerParamsColumns BrokerParams = new PlazaBrokerParamsColumns();

		/// <summary>
		/// Колонки таблицы с информацией о параметрах клиентов.
		/// </summary>
		public readonly PlazaClientParamsColumns ClientParams = new PlazaClientParamsColumns();

		/// <summary>
		/// Колонки таблицы с информацией об обязательства ММ по фьючерсам.
		/// </summary>
		public readonly PlazaMarketMakingFutureColumns MarketMakingFutureParams = new PlazaMarketMakingFutureColumns();

		/// <summary>
		/// Колонки таблицы с информацией об обязательства ММ по опционам.
		/// </summary>
		public readonly PlazaMarketMakingOptionColumns MarketMakingOptionParams = new PlazaMarketMakingOptionColumns();

		#endregion

		#region SysEvents

		/// <summary>
		/// Колонки таблицы с событиями.
		/// </summary>
		public readonly PlazaSysEventsColumns SysEventsTradeFuture = new PlazaSysEventsColumns();

		/// <summary>
		/// Колонки таблицы с событиями.
		/// </summary>
		public readonly PlazaSysEventsColumns SysEventsTradeOption = new PlazaSysEventsColumns();

		/// <summary>
		/// Колонки таблицы с событиями.
		/// </summary>
		public readonly PlazaSysEventsColumns SysEventsOrdersLog = new PlazaSysEventsColumns();

		/// <summary>
		/// Колонки таблицы с событиями.
		/// </summary>
		public readonly PlazaSysEventsColumns SysEventsPositions = new PlazaSysEventsColumns();

		/// <summary>
		/// Колонки таблицы с событиями.
		/// </summary>
		public readonly PlazaSysEventsColumns SysEventsPortfolios = new PlazaSysEventsColumns();

		/// <summary>
		/// Колонки таблицы с событиями.
		/// </summary>
		public readonly PlazaSysEventsColumns SysEventsInfoFuture = new PlazaSysEventsColumns();

		/// <summary>
		/// Колонки таблицы с событиями.
		/// </summary>
		public readonly PlazaSysEventsColumns SysEventsInfoOption = new PlazaSysEventsColumns();

		/// <summary>
		/// Колонки таблицы с событиями.
		/// </summary>
		public readonly PlazaSysEventsColumns SysEventsClearingMoney = new PlazaSysEventsColumns();

		/// <summary>
		/// Колонки таблицы с событиями.
		/// </summary>
		public readonly PlazaSysEventsColumns SysEventsInfo = new PlazaSysEventsColumns();

		#endregion

		#region Micex
		/// <summary>
		/// Колонки таблицы со всеми сделками на фондовом рынке.
		/// </summary>
		public readonly PlazaMcxTradesSpotColumns McxTradesSpot = new PlazaMcxTradesSpotColumns();

		/// <summary>
		/// Колонки таблицы со всеми сделками на валютном рынке.
		/// </summary>
		public readonly PlazaMcxTradesCurrencyColumns McxTradesCurrency = new PlazaMcxTradesCurrencyColumns();

		/// <summary>
		/// Колонки таблицы с общей информацией по инструментам на фондовом рынке.
		/// </summary>
		public readonly PlazaMcxCommonSpotColumns McxCommonSpot = new PlazaMcxCommonSpotColumns();

		/// <summary>
		/// Колонки таблицы с общей информацией по инструментам на валютном рынке.
		/// </summary>
		public readonly PlazaMcxCommonCurrencyColumns McxCommonCurrency = new PlazaMcxCommonCurrencyColumns();

		/// <summary>
		/// Колонки таблицы с общей информацией по инструментам на фондовом рынке.
		/// </summary>
		public readonly PlazaMcxOrderBookSpotColumns McxOrderBookSpot = new PlazaMcxOrderBookSpotColumns();

		/// <summary>
		/// Колонки таблицы с общей информацией по инструментам на валютном рынке.
		/// </summary>
		public readonly PlazaMcxOrderBookCurrencyColumns McxOrderBookCurrency = new PlazaMcxOrderBookCurrencyColumns();

		/// <summary>
		/// Колонки таблицы с параметрами инструментов на фондовом рынке.
		/// </summary>
		public readonly PlazaMcxSecuritiesSpotColumns McxSecuritiesSpot = new PlazaMcxSecuritiesSpotColumns();

		/// <summary>
		/// Колонки таблицы с параметрами инструментов на валютном рынке.
		/// </summary>
		public readonly PlazaMcxSecuritiesCurrencyColumns McxSecuritiesCurrency = new PlazaMcxSecuritiesCurrencyColumns();

		/// <summary>
		/// Колонки таблицы со справочником валют на фондовом рынке.
		/// </summary>
		public readonly PlazaMcxCurrencySpotColumns McxCurrencySpot = new PlazaMcxCurrencySpotColumns();

		/// <summary>
		/// Колонки таблицы со справочником валют на валютном рынке.
		/// </summary>
		public readonly PlazaMcxCurrencyCurrencyColumns McxCurrencyCurrency = new PlazaMcxCurrencyCurrencyColumns();

		/// <summary>
		/// Колонки таблицы с режимом торгов на фондовом рынке.
		/// </summary>
		public readonly PlazaMcxBoardsSpotColumns McxBoardsSpot = new PlazaMcxBoardsSpotColumns();

		/// <summary>
		/// Колонки таблицы с режимом торгов на валютном рынке.
		/// </summary>
		public readonly PlazaMcxBoardsCurrencyColumns McxBoardsCurrency = new PlazaMcxBoardsCurrencyColumns();

		/// <summary>
		/// Колонки таблицы с рынками на фондовом рынке.
		/// </summary>
		public readonly PlazaMcxMarketsSpotColumns McxMarketsSpot = new PlazaMcxMarketsSpotColumns();

		/// <summary>
		/// Колонки таблицы с рынками на валютном рынке.
		/// </summary>
		public readonly PlazaMcxMarketsCurrencyColumns McxMarketsCurrency = new PlazaMcxMarketsCurrencyColumns();

		/// <summary>
		/// Колонки таблицы с кодами расчётов на фондовом рынке.
		/// </summary>
		public readonly PlazaMcxSettleCodesSpotColumns McxSettleCodesSpot = new PlazaMcxSettleCodesSpotColumns();

		/// <summary>
		/// Колонки таблицы с кодами расчётов на валютном рынке.
		/// </summary>
		public readonly PlazaMcxSettleCodesCurrencyColumns McxSettleCodesCurrency = new PlazaMcxSettleCodesCurrencyColumns();

		/// <summary>
		/// Колонки таблицы с системным временем торгового сервера на фондовом рынке.
		/// </summary>
		public readonly PlazaMcxTeSysTimeSpotColumns McxTeSysTimeSpot = new PlazaMcxTeSysTimeSpotColumns();

		/// <summary>
		/// Колонки таблицы с системным временем торгового сервера на валютном рынке.
		/// </summary>
		public readonly PlazaMcxTeSysTimeCurrencyColumns McxTeSysTimeCurrency = new PlazaMcxTeSysTimeCurrencyColumns();

		/// <summary>
		/// Колонки таблицы с расписанием торгов на фондовом рынке.
		/// </summary>
		public readonly PlazaMcxTradeTimeSpotColumns McxTradeTimeSpot = new PlazaMcxTradeTimeSpotColumns();

		/// <summary>
		/// Колонки таблицы с расписанием торгов на валютном рынке.
		/// </summary>
		public readonly PlazaMcxTradeTimeCurrencyColumns McxTradeTimeCurrency = new PlazaMcxTradeTimeCurrencyColumns();

		/// <summary>
		/// Колонки таблицы с сообщениями на фондовом рынке.
		/// </summary>
		public readonly PlazaMcxBcMessagesSpotColumns McxBcMessagesSpot = new PlazaMcxBcMessagesSpotColumns();

		/// <summary>
		/// Колонки таблицы с сообщениями на валютном рынке.
		/// </summary>
		public readonly PlazaMcxBcMessagesCurrencyColumns McxBcMessagesCurrency = new PlazaMcxBcMessagesCurrencyColumns();

		/// <summary>
		/// Колонки таблицы с информацией о торговом сервере на фондовом рынке.
		/// </summary>
		public readonly PlazaMcxTeInfoSpotColumns McxTeInfoSpot = new PlazaMcxTeInfoSpotColumns();

		/// <summary>
		/// Колонки таблицы с информацией о торговом сервере на валютном рынке.
		/// </summary>
		public readonly PlazaMcxTeInfoCurrencyColumns McxTeInfoCurrency = new PlazaMcxTeInfoCurrencyColumns();

		/// <summary>
		/// Колонки таблицы с информацией о типах событий расписания торгов на фондовом рынке.
		/// </summary>
		public readonly PlazaMcxTrdTimeTypesSpotColumns McxTrdTimeTypesSpot = new PlazaMcxTrdTimeTypesSpotColumns();

		/// <summary>
		/// Колонки таблицы с информацией о типах событий расписания торгов на валютном рынке.
		/// </summary>
		public readonly PlazaMcxTrdTimeTypesCurrencyColumns McxTrdTimeTypesCurrency = new PlazaMcxTrdTimeTypesCurrencyColumns();

		/// <summary>
		/// Колонки таблицы с накопленным доходом и ставками РЕПО на дату расчетов торгов на фондовом рынке.
		/// </summary>
		public readonly PlazaMcxSecSettleCodeSpotColumns McxSecSettleCodeSpot = new PlazaMcxSecSettleCodeSpotColumns();

		/// <summary>
		/// Колонки таблицы с накопленным доходом и ставками РЕПО на дату расчетов торгов на валютном рынке.
		/// </summary>
		public readonly PlazaMcxSecSettleCodeCurrencyColumns McxSecSettleCodeCurrency = new PlazaMcxSecSettleCodeCurrencyColumns();

		#endregion Micex
	}
}
